import pymysql

data = {
    'id':'20120004',
    'name':'Xiaobu',
    'age': 21
}

db = pymysql.connect(host='localhost',user='root',password='123456',port=3306,db='spiders')
cursor = db.cursor()
table = 'students'
keys = ', '.join(data.keys())
print(keys)
values = ', '.join(['%s'] * len(data))
print(values)
print("*"*20)
sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)
try:
    if cursor.execute(sql,tuple(data.values())):
        print("插入成功！")
        db.commit()
except:
    print("插入失败！")
    db.rollback()
db.close()

'''
分析：
    传入的数据是字典，并将其定义为data变量；表名也定义为成变量table
    构造动态的SQL语句
注意1：join方法采用的连接字符串中，逗号后面的空格可打可不打
'''